package com.gethb.prod.service.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.gethb.data.dao.MessageMapper;
import com.gethb.data.dao.UserMapper;
import com.gethb.data.mdo.UserInfDo;
import com.gethb.prod.service.IUserInfAddService;
import com.gethb.pub.utils.ToolsUtils;

@Component("userMapperService")
public class UserInfAddServiceImpl implements IUserInfAddService {
	
	private static final Logger LOG = LoggerFactory.getLogger(UserInfAddServiceImpl.class);
	
	@Resource
	UserMapper userMapper;//接口
	
//	@Resource
//	MessageMapper messageMapper;//接口

	@Override
	public String addUserInf(String phone, String name, String password, String referencesId) throws Exception {

//		//校验验证码是否正确
//		if (!checkCode(inVo)) {
//			LOG.info("校验短信验证码异常！请重新登陆");
//			outVo.setStdcd("Fail");
//			return JSON.toJSONString(outVo);
//		}

		// 生成会员ID
		int sum = userMapper.findUserSum();
		String userId = ToolsUtils.getUserId(phone, sum);
		LOG.info("用户ID：" + userId);
		UserInfDo userInfDo = new UserInfDo();
		userInfDo.setId(userId);
		userInfDo.setMblphNo(phone);
		userInfDo.setName(name);
		userInfDo.setPassword(password);
		userInfDo.setReferencesId(referencesId);

		SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");//设置日期格式
		userInfDo.setLogonData(df.format(new Date()));

		userMapper.addNewUsers(userInfDo);

		LOG.info("end注册用户结束");
		return userId;
	}

	/**
	 * 校验手机号是否已经注册过会员
	 */
	public boolean checkPhoneNo(String phone) throws Exception {
		LOG.info("校验是否已经注册会员开始");
		if (userMapper.findByMbphNoInf(phone) != 0) {
			LOG.info("该手机号码已经注册会员");
			return true;
		} else {
			return false;
		}
	}

//	/**
//	 * 校验短信验证码是否正确
//	 */
//	public boolean checkCode(UserInVo inVo) {
//		LOG.info("校验短信验证码_开始");
//		boolean flag = true;
//		MessageDo messageDo = new MessageDo();
//		messageDo.setMblphNo(inVo.getPhone());
//		messageDo.setMessageId(inVo.getMessageId());
//		messageDo.setNumber(inVo.getNumber());
//		messageDo = messageMapper.findMessageDo(messageDo);
//		LOG.info("数据库验证码：" + messageDo.getMblphNo());
//		// 校验短信验证码是否正确
//		if (!inVo.getCode().equals(messageDo.getCode())) {
//			LOG.info("短信验证码错误！");
//			flag = false;
//		}
//
//		// 校验短信验证码是否超时
//		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
//		long seconds = 0;
//		try {
//			Date d1 = df.parse(df.format(messageDo.getTms()));
//			Date d2 = df.parse(df.format(new Timestamp(System.currentTimeMillis())));
//			seconds = (d2.getTime() - d1.getTime()) / (1000);
//			LOG.info("时间差为" + seconds);
//		} catch (Exception e) {
//			LOG.debug("时间处理错误");
//			e.printStackTrace();
//		}
//		if (600 < seconds) {
//			LOG.info("验证码已超时！");
//			flag = false;
//		}
//		LOG.info("校验短信验证码_结束");
//		return flag;
//	}
}
